diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt | 41 |
1 files changed, 5 insertions, 36 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt index a02d8fb01..7b66bf220 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt @@ -4,46 +4,26 @@ package org.yuzu.yuzu_emu.utils import android.content.Context -import android.content.Intent -import androidx.localbroadcastmanager.content.LocalBroadcastManager import org.yuzu.yuzu_emu.NativeLibrary import java.io.IOException -import java.util.concurrent.atomic.AtomicBoolean object DirectoryInitialization { - const val BROADCAST_ACTION = "org.yuzu.yuzu_emu.BROADCAST" - const val EXTRA_STATE = "directoryState" - - @Volatile - private var directoryState: DirectoryInitializationState? = null private var userPath: String? = null - private val isDirectoryInitializationRunning = AtomicBoolean(false) + + var areDirectoriesReady: Boolean = false @JvmStatic fun start(context: Context) { - // Can take a few seconds to run, so don't block UI thread. - Runnable { init(context) }.run() - } - - private fun init(context: Context) { - if (!isDirectoryInitializationRunning.compareAndSet(false, true)) return - if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) { + if (!areDirectoriesReady) { initializeInternalStorage(context) NativeLibrary.InitializeEmulation() - directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED + areDirectoriesReady = true } - isDirectoryInitializationRunning.set(false) - sendBroadcastState(directoryState, context) - } - - fun areDirectoriesReady(): Boolean { - return directoryState == DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED } val userDirectory: String? get() { - checkNotNull(directoryState) { "DirectoryInitialization has to run at least once!" } - check(!isDirectoryInitializationRunning.get()) { "DirectoryInitialization has to finish running first!" } + check(areDirectoriesReady) { "Directory initialization is not ready!" } return userPath } @@ -55,15 +35,4 @@ object DirectoryInitialization { e.printStackTrace() } } - - private fun sendBroadcastState(state: DirectoryInitializationState?, context: Context) { - val localIntent = Intent(BROADCAST_ACTION) - .putExtra(EXTRA_STATE, state) - LocalBroadcastManager.getInstance(context).sendBroadcast(localIntent) - } - - enum class DirectoryInitializationState { - YUZU_DIRECTORIES_INITIALIZED, - CANT_FIND_EXTERNAL_STORAGE - } } |